﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.ComponentModel;

#if WPF
using Silverlight.Hosting.Wpf.Interop;
using EventArgs = System.Windows.RoutedEventArgs;

namespace Silverlight.Hosting.Wpf.Private
#else
using Silverlight.Hosting.Interop;

namespace Silverlight.Hosting.Private
#endif
{
    public interface ISilverlightHostEventProvider
    {
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        void OnCreated(EventArgs e);
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        void OnSilverlightLoaded(EventArgs e);
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        void OnSilverlightError(SilverlightErrorEventArgs e);
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        void OnSilverlightEvent(SilverlightEventArgs e);
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        void OnSourceDownloadComplete(EventArgs e);
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        void OnSourceDownloadProgressChanged(SourceDownloadProgressChangedEventArgs e);
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        void OnContentLoaded(EventArgs e);
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        void OnContentError(ErrorEventArgs e);
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        void OnContentZoomed(EventArgs e);
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        void OnContentResized(EventArgs e);
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        void OnFullScreenChanged(EventArgs e);
        [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
        DownloadResult DownloadUrl(string url, IDownloadUrlCallback callback, out Stream stream);
    }
}
